其他
利用Biopython来进行序列比对
利用Biopython来进行序列比对
前言
序列比对在生物信息中很常见,通过比较序列的相似度来推测其相关的功能。序列比对一般针对的是两条或者多条序列,可以是DNA、RNA或者蛋白序列,来推测序列间的区域的相似度。
识别相似区域使我们能够推断出许多信息,比如物种之间保存了哪些特征,不同物种在遗传上有多接近,物种是如何进化的等等。Biopython为序列比对提供了广泛的支持。
我们今天从最简单的两条序列比对开始,使用Biopython里面的pairwise2。
两两序列的比对
from Bio import pairwise2
from Bio.Seq import Seq
seq1 = Seq('ACCGGT')
seq2 = Seq('ACGT')
alignments = pairwise2.align.globalxx(seq1, seq2)
for alignment in alignments:
print(alignment)
结果为:
('ACCGGT', 'A-C-GT', 4.0, 0, 6)
('ACCGGT', 'AC--GT', 4.0, 0, 6)
('ACCGGT', 'A-CG-T', 4.0, 0, 6)
('ACCGGT', 'AC-G-T', 4.0, 0, 6)
使用参数
上述例子中,代码都很好理解,只有pairwise2.align.globalxx可能有点费劲,给大家解释一下。
pairwise2.align后,可以是local也可以是global,如果是local模式,可以使用localxx,大家可以自行测试一下。而对于xx有如下参数。
第一个x是对于matches的参数,有x/m/d/c几种,如下:
CODE DESCRIPTION
x No parameters. Identical characters have score of 1, otherwise 0.
m A match score is the score of identical chars, otherwise mismatch
score.
d A dictionary returns the score of any pair of characters.
c A callback function returns scores.
第二个是对于开gap惩罚的参数;有x/s/d/c几种,如下:
CODE DESCRIPTION
x No gap penalties.
s Same open and extend gap penalties for both sequences.
d The sequences have different open and extend gap penalties.
c A callback function returns the gap penalties.
不同的组合可能有不同的参数,大家可以使用以下命令来查看对应的参数,来看看需要传什么参数。
help(pairwise2.align.globalxs)
结果查看
tt = pairwise2.align.globalxx(seq1,seq2)
ss = tt[0]
ss.score ### 比对的分数
ss.seqA
ss.seqB
其中,可以使用score获得比对的分数,根据分数来设定阈值,来确定是否要输出结果。
结语
参考文献
https://biopython.org/docs/1.75/api/Bio.pairwise2.html
作者:童蒙
编辑:angelica
往期精彩